|
|
| Menu location |
|---|
| 3D/BIM → Reinforcement Tools → Beam Reinforcement |
| Workbenches |
| Reinforcement, BIM |
| Default shortcut |
| None |
| Introduced in version |
| 0.19 |
| See also |
| None |
The Reinforcement BeamRebars tool allows the user to create reinforcing bars inside a Beam Arch Structure object.
This tool is part of the Reinforcement Workbench, an external workbench that can be installed with the Addon Manager.
Beam Reinforcement inside a Beam Arch Structure
1. Select right face of a previously created beam Structure object having length along x-axis. Or select front face of a previously created beam
Structure object having length along y-axis.
2. Then select Beam Reinforcement from the rebar tools.
3. A dialog box will pop-out on screen as shown below.
4. Select the desired type of beam reinforcement.
5. Give inputs for data related to stirrups.
6. Click Next and the dialog box will be updated as shown below.
7. Set data for top rebars.
8. Click Next and the dialog box will be updated as shown below.
9. Set data for bottom rebars similar to top rebars data.
10. Click Next and the dialog box will be updated as shown below.
11. Set data for left shear rebars.
12. Click Next and the dialog box will be updated as shown below.
13. Set data for right shear rebars similar to left shear rebars data.
14. Click OK or Apply to generate beam reinforcement.
15. Click Cancel to exit the dialog box.
Stirrups:
Top/Bottom Reinforcement Rebars: Rebars present at top/bottom side of beam
Left/Right Reinforcement Rebars: Rebars present at left/right side of beam
See also: Arch API, Reinforcement API and FreeCAD Scripting Basics.
The Reinforcement BeamRebars tool can be used in macros and from the Python console by using the following function:
RebarGroup = makeReinforcement(
l_cover_of_stirrup,
r_cover_of_stirrup,
t_cover_of_stirrup,
b_cover_of_stirrup,
offset_of_stirrup,
bent_angle,
extension_factor,
dia_of_stirrup,
number_spacing_check,
number_spacing_value,
top_reinforcement_number_diameter_offset,
top_reinforcement_rebar_type,
top_reinforcement_layer_spacing,
bottom_reinforcement_number_diameter_offset,
bottom_reinforcement_rebar_type,
bottom_reinforcement_layer_spacing,
left_rebars_number_diameter_offset,
left_rebars_type,
left_rebars_spacing,
right_rebars_number_diameter_offset,
right_rebars_type,
right_rebars_spacing,
top_reinforcement_l_rebar_rounding=2,
top_reinforcement_hook_extension=40,
top_reinforcement_hook_orientation="Front Inside",
bottom_reinforcement_l_rebar_rounding=2,
bottom_reinforcement_hook_extension=40,
bottom_reinforcement_hook_orientation="Front Inside",
left_l_rebar_rounding=2,
left_rebars_hook_extension=40,
left_rebars_hook_orientation="Front Inside",
right_l_rebar_rounding=2,
right_rebars_hook_extension=40,
right_rebars_hook_orientation="Front Inside",
structure=None,
facename=None,
)
RebarGroup object from the given structure, which is an Arch Structure, and facename, which is a face of that structure.
structure nor facename are given, it will take the user selected face as input.l_cover_of_stirrup, r_cover_of_stirrup, t_cover_of_stirrup, b_cover_of_stirrup and offset_of_stirrup are inner offset distances for the stirrup elements with respect to the faces of the structure. They are respectively the left, right, top, bottom and front/rear offsets.bent_angle define the angle of the tip of the reinforcement loop of stirrup.extension_factor define the length of the tip of the reinforcement loop of stirrup, expressed in times the diameter.dia_of_stirrup is the diameter of the stirrup.number_spacing_check if it is True it will create as many stirrup as given by number_spacing_value; if it is False it will create stirrup separated by the numerical value of number_spacing_value.number_spacing_value specifies the number of stirrups, or the value of the separation between them, depending on number_spacing_check.top_reinforcement_number_diameter_offset and bottom_reinforcement_number_diameter_offset are tuple of number_diameter_offset string. Each element of tuple represents reinforcement for each new layer. Syntax: (
"number1#diameter1@offset1+number2#diameter2@offset2+...",
"number3#diameter3@offset3+number4#diameter4@offset4+...",
...,
)
top_reinforcement_rebar_type and bottom_reinforcement_rebar_type specifies type of top/bottom reinforcement bars. Possible values:
1. 'StraightRebar' or 'LShapeRebar'
2. ('<rebar_type>', '<rebar_type>', ...) and number of elements of tuple must be equal to number of reinforcement
layers.
3. [
('<rebar_type>', '<rebar_type>', ...),
('<rebar_type>', '<rebar_type>', ...),
...,
]
each element of list is a tuple, which specifies rebar type of each reinforcement layer. And each element of
tuple represents rabar_type for each set of rebars.
4. [
<rebar_type>,
('<rebar_type>', '<rebar_type>', ...),
...,
]
top_reinforcement_layer_spacing and bottom_reinforcement_layer_spacing is the spacing between two consecutive reinforcement layers. Possible values:
1. <layer_spacing>
2. (<spacing in layer1 and layer2>, <spacing in layer2 and layer3>, ...) and number of elements of tuple must be
equal to one less than number of layers.
left_rebars_number_diameter_offset and right_rebars_number_diameter_offset are string of number_diameter_offset.Syntax: "number1#diameter1@offset1+number2#diameter2@offset2+..."
left_rebars_type and right_rebars_type specifies type of left/right reinforcement bars. Possible values:
1. 'StraightRebar' or 'LShapeRebar'
2. ('<rebar_type>', '<rebar_type>', ...) and each element of tuple represents rabar_type for each set of rebars.
left_rebars_spacing and right_rebars_spacing is clear spacing between consecutive reinforcement bars.top_reinforcement_l_rebar_rounding and bottom_reinforcement_l_rebar_rounding is the parameter that determines the bending radius of the LShaped top/bottom rebars, expressed as times the diameter. Possible syntax are similar to as discussed above for top_reinforcement_rebar_type / bottom_reinforcement_rebar_type.top_reinforcement_hook_extension and bottom_reinforcement_hook_extension is the length of hook of LShaped rebars. Possible syntax are similar to as discussed above for top_reinforcement_rebar_type / bottom_reinforcement_rebar_type.top_reinforcement_hook_orientation and bottom_reinforcement_hook_orientation specifies the orientation of LShaped hook; it can be "Front Inside", "Front Outside", "Rear Inside" or "Rear Outside". Possible syntax are similar to as discussed above for top_reinforcement_rebar_type / bottom_reinforcement_rebar_type.left_l_rebar_rounding and right_l_rebar_rounding is the parameter that determines the bending radius of the LShaped left/right rebars, expressed as times the diameter. Possible syntax are similar to as discussed above for left_rebars_type / right_rebars_type.left_rebars_hook_extension and right_rebars_hook_extension is the length of hook of LShaped rebars. Possible syntax are similar to as discussed above for left_rebars_type / right_rebars_type.left_rebars_hook_orientation and right_rebars_hook_orientation specifies the orientation of LShaped hook; it can be "Front Inside", "Front Outside", "Rear Inside" or "Rear Outside". Possible syntax are similar to as discussed above for left_rebars_type / right_rebars_type.import FreeCAD, Arch
from BeamReinforcement import TwoLeggedBeam
Structure = Arch.makeStructure(length=3000.0,width=200.0,height=400.0)
Structure.ViewObject.Transparency = 80
FreeCAD.ActiveDocument.recompute()
RebarGroup = TwoLeggedBeam.makeReinforcement(
l_cover_of_stirrup=20,
r_cover_of_stirrup=20,
t_cover_of_stirrup=20,
b_cover_of_stirrup=20,
offset_of_stirrup=100,
bent_angle=135,
extension_factor=4,
dia_of_stirrup=8,
number_spacing_check=False,
number_spacing_value=200,
top_reinforcement_number_diameter_offset=("1#20@-60+2#16@-60+1#20@-60", "3#16@-100"),
top_reinforcement_rebar_type="LShapeRebar",
top_reinforcement_layer_spacing=30,
bottom_reinforcement_number_diameter_offset=("1#20@-60+2#16@-60+1#20@-60", "3#16@-100"),
bottom_reinforcement_rebar_type="LShapeRebar",
bottom_reinforcement_layer_spacing=30,
left_rebars_number_diameter_offset="1#16@-100+1#16@-100+1#16@-100",
left_rebars_type="LShapeRebar",
left_rebars_spacing=30,
right_rebars_number_diameter_offset="1#16@-100+1#16@-100+1#16@-100",
right_rebars_type="LShapeRebar",
right_rebars_spacing=30,
top_reinforcement_l_rebar_rounding=2,
top_reinforcement_hook_extension=100,
top_reinforcement_hook_orientation="Rear Outside",
bottom_reinforcement_l_rebar_rounding=2,
bottom_reinforcement_hook_extension=100,
bottom_reinforcement_hook_orientation="Rear Outside",
left_l_rebar_rounding=2,
left_rebars_hook_extension=80,
left_rebars_hook_orientation=("Rear Inside", "Front Inside", "Rear Inside"),
right_l_rebar_rounding=2,
right_rebars_hook_extension=80,
right_rebars_hook_orientation=("Front Inside", "Rear Inside", "Front Inside"),
structure=Structure,
facename="Face6",
)